package com.goldfish666.remote_control.service.base;

import java.util.List;

public interface BaseService<TEntity, TKey> {

    /**
     * 新增实体
     *
     * @param entity
     * @return
     */
    TEntity insert(TEntity entity);

    /**
     * 更新实体
     *
     * @param entity
     * @return
     */
    TEntity update(TEntity entity);

    /**
     * 保存实体
     *
     * @param entity
     * @return
     */
    TEntity save(TEntity entity);

    /**
     * 批量保存实体
     *
     * @param entities
     * @return
     */
    List<TEntity> saveAll(List<TEntity> entities);

    /**
     * 删除实体
     *
     * @param id
     * @return
     */
    boolean delete(TKey id);

    /**
     * 根据主键查询实体
     *
     * @param id
     * @return
     */
    TEntity getById(TKey id);

    /**
     * 获取全部实体
     *
     * @return
     */
    List<TEntity> getAll();

}
